// export function update() {
//   console.log('appid看看看看', plus.runtime.appid)
//   uniCloud.callFunction({
//     name: 'chb-check-update',
//     data: {
//       appid: plus.runtime.appid,
//       version: plus.runtime.version
//     },
//     success: e => {
//       console.log('需要更新对象', e)
//       if (e.result.isUpdate) {//需要更新
//         // 提醒用户更新
//         uni.showModal({
//           title: '更新提示',
//           content: e.result.note ? e.result.note : '是否选择更新',
//           success: ee => {
//             if (ee.confirm) {
//               plus.runtime.openURL(e.result.url)
//             }
//           }
//         })
//       }
//     }
//   })
// }

//#ifdef APP-PLUS
// import request from '@/api/request.js'
// // 整包更新
// function fullPackage(data) {
//   // 如果是安卓设备
//   if (plus.os.name === 'Android') {
//     let title = '正在下载更新，请稍后'
//     uni.showToast({
//       title,
//       icon: 'none',
//     })
//     let dtask = plus.downloader.createDownload(data.wholeurl, {}, (d, status) => {
//       // 下载成功
//       if (status === 200) {
//         let path = d.filename
//         plus.runtime.install(path)
//       } else { //下载失败
//         uni.showToast({
//           title: '下载失败',
//           icon: 'none',
//           duration: 1000
//         })
//       }
//     })
//     dtask.start()
//     // plus.runtime.openURL(res.data.url)
//   } else {
//     // ios设备的更新
//     let appleId = 1525852184
//     plus.runtime.launchApplication({
//       action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
//     }, function(e) {
//       console.log('打开默认程序失败: ' + e.message)
//     })
//   }
// }

// // 热更新
// function hotUpdate(data) {
//   uni.showLoading({
//     title: '资源下载中，请稍后...',
//     mask: true,
//   })

//   uni.downloadFile({
//     url: data.wholeurl,
//     success: res => {
//       if (res.statusCode === 200) {
//         plus.runtime.install(res.tempFilePath, {
//           force: false
//         }, function() {
//           uni.showToast({
//             icon: "none",
//             title: '更新成功, 应用将重启',
//             mask: true
//           })
//           let t = setTimeout(() => {
//             clearTimeout(t)
//             plus.runtime.restart()
//           }, 1500)
//           console.log('安装成功...')
//         }, function(e) {
//           uni.showToast({
//             title: '更新失败',
//             icon: 'none',
//             mask: true,
//           })
//           console.error('安装失败...')
//         })
//       } else {
//         console.log('热更新文件包下载失败')
//       }
//     }
//   })
// }

// export async function update() {
//   console.log('看看更新接口', request)
//   try {
//     const updateUrl = 'https://testapi.yzsheng.com/bussiness/Common/GetEdition' // 判断更新请求地址
//     const { data } = await request.post(updateUrl, { apptype: 0 })
//     plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
//       if (data.wholeupdate !== widgetInfo.version) {
//         uni.showModal({ //提醒用户更新
//           title: '更新提示',
//           content: '检测到有新版本，请更新后继续使用',
//           showCancel: false,
//           success: ({ confirm }) => {
//             // 点击确定
//             if (confirm) {
//               // hotUpdate(data)
//               // 更新包链接包含.apk，调用更新整包方法
//               data.wholeurl.search(/.apk/) !== -1 ? fullPackage(data) : hotUpdate(data)
//             }
//           }
//         })
//       }
//     })
//   } catch (err) {
//     console.log('更新接口报错', err)
//   }
// }
//#endif

// #ifdef APP-PLUS
import baseUrl from '@/utils/baseUrl.js' // api接口地址
import request from '@/api/request.js'
let topIconPath = plus.io.convertLocalFileSystemURL('_www/static')+'/img/update.png'

export  function update(callback) {
  try {
    plus.runtime.getProperty(plus.runtime.appid, async widgetInfo => {
      const updateUrl = `${baseUrl}/bussiness/Common/GetEdition` // 判断更新请求地址
      // 更新请求参数
      const updateParams = {
        apptype: 0,
        version: widgetInfo.version
      }
      const { data } = await request.post(updateUrl, updateParams)
      let newVersion = parseInt(data.wholeupdate.split('.').join('')) // 新版本号
      let currentVersion = parseInt(widgetInfo.version.split('.').join('')) // 当前版本号
      // 如果新版本大于当前版本
      if (newVersion > currentVersion) {
        data.title = data.title || '发现新版本'
        data.content = data.content || '本次版本更新描述内容：\n1、优化了某些方案；\n2、优化了某些流程;\n3、修复了已知问题;'
        try {
          data.content = data.content.replace(/\\n/g, '\n')
        } catch (err) {
        }
        data.isForceUpdate = data.isForceUpdate || false
        data.wholeurl.search(/.apk/) !== -1 ? fullPackage(data) : hotUpdate(data)
      }
    })
    callback && callback(data)
  } catch (err) {
    console.log('更新接口报错', err)
  }
}

/**
 * @description: 整包更新
 * @param {*}
 * @return {*}
 */
function fullPackage(data) {
  const upDater = uni.requireNativePlugin('CL-UpDater')

  if(uni.getSystemInfoSync().platform === 'ios') {
    data.wholeurl = 'itms-apps://itunes.apple.com/cn/app/id1525852184?mt=8'
  }
  let options={
    title: data.title,
    con: data.content,
    downUrl: data.wholeurl,
    updateBtnText: '立即更新',
    hidBackBtn: false,
    verCode: data.wholeupdate,
    topImgBg: topIconPath,
    btnBgColor: '#fbd220',
    hidCancelbtn: data.isForceUpdate, // 隐藏取消按钮
  }

  //必需提供下载地址;
  upDater.startUpdate(options,() => {

    console.log('弹框关闭了')

  })
}

/**
 * @description: 热更新
 * @param {*}
 * @return {*}
 */
function hotUpdate(data) {
  const upDater = uni.requireNativePlugin('CL-UpDater')
  let options={
    title: data.title,
    con: data.content,
    downUrl: data.wholeurl,
    updateBtnText: '立即更新',
    hidCancelbtn: false,
    topImgBg: topIconPath,
    btnBgColor: '#fbd220',
    hidCancelbtn: data.isForceUpdate, // 隐藏取消按钮
  }
  //第一步创建文件下载路径，并创建文件;
  plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS,function(fobject){
    //设置文件下载根路径;
    let rootPath = fobject.root.fullPath
    upDater.wgtUpdate(options, rootPath, result => {
      if(result){
        let pathNew = plus.io.convertAbsoluteFileSystem(result)
        plus.runtime.install(pathNew, {
          force: false
        }, function() {
          //进行重新启动;
          plus.runtime.restart()
        }, e => {
          uni.showToast({
            title: '安装升级包失败'+JSON.stringify(e),
            icon: 'none'
          })
        },() => {
          console.log('弹框关闭了')
        })
      }
    })
  })
}

// #endif
